Current mirror structures serve to produce output currents which are accurately scaled to their input currents. Two major error sources are low output impedance and thermal mismatch. Thermal errors occur because the mirror input and output semiconductor devices, although made by the same technology and in close proximity on the same wafer, still may be subjected to temperature differences which take a long time to equilibrate. For example, often the two devices such as bipolar transistors are separated by a dielectric such as glass which is a poor thermal conductor. Thus when the output device voltage varies its thermal variations are not instantaneously communicated to the input device and so their collector currents will not be exactly matched. Thus the output will not follow accurately the input and errors will occur. For bipolar transistors, the Early voltage phenomenon causes the output device to perform as if there is an impedance across its collector and emitter in parallel with the load impedance and diverting current that should be flowing through the load impedance. This interferes with the output accuracy in tracking the input. There is no offsetting Early voltage effect on the input device because it has its base and collector connected together thereby holding constant the voltage across its collector and emitter. Similar problems occur in current mirrors implemented with other semiconductor devices, e.g. FET's. One conventional solution to both these problems is to introduce another cascode semiconductor device in series with the output transistor to hold its collector voltage constant. However, this requires a higher voltage supply or alternatively limits the permissible range of the input and output signals.